﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Apollo
{
    public delegate ActionContext ActionHandler(object obj);

    public class Action
    {
        public Action(string name) {
            this.Name = name;
            this.Handlers = new List<ActionHandlerContainer>();
        }

        public string Name { get; set; }

        public IList<ActionHandlerContainer> Handlers { get; set; }

        /// <summary>
        /// Not implemented yet
        /// </summary>
        //public IList<IModule> Subscribers { get; set; }
    }

    public class ActionHandlerContainer {
        public ActionHandlerContainer() { }

        public ActionHandler Handler { get; set; }
        public int Priority { get; set; }
        public ActionHandlingType HandlingType { get; set; }
    }
}
